#ifndef __IPESBuilder_H__
#define __IPESBuilder_H__

#include "ITSBuilder.h"
#include "CPES.h"
#include <vector>

/**
This interface is for building PESs from TSs
*/
class IPESBuilder
{
public:
    /** 
     Build PESs from the TSs inside a ITSBuilder
	 @param cTSBuilder - this object contains TS lists
    */
    virtual void buildPes(ITSBuilder* cTSBuilder) = 0;

	/**
	Returns a list of PESs
	@param PID - the pid of the stream
	@return a vector that contains all the PESs that belong to this PID
	*/
	virtual std::vector<CPES*>* getPESPackets(unsigned int PID) = 0;
	
	virtual ~IPESBuilder(){};
};

#endif //__IPESBuilder_H__
